1. Field of the Invention
The present invention relates generally to computer data buses and, more particularly, to computer data bus interface controls.
2. Related Art
Computer buses, such as the Compact PCI (“cPCI”) bus, are used to distribute signals between or among components or subsystems. In some situations, components, such as I/O devices, memories or processors, are mounted on a common circuit board, and a bus interconnects the components. In other situations, circuit boards comprising entire subsystems, such as servers, switches or routers, plug into sockets (sometimes also referred to as “slots”) in a backplane bus, which interconnects the boards. For example, cPCI buses are commonly used as backplanes to interconnect replaceable circuit boards (commonly referred to as “blades”) in “blade systems.”
A bus can be used for “point-to-point” communication between two circuit boards or components, or in situations where more than two circuit boards or components share a single bus. Some buses permit circuit boards to be “hot swapped” (installed or removed), while the buses and remaining circuit boards continue to operate. For simplicity, “board” or “circuit board” will hereinafter also refer to a component that is, or could be, connected to a bus. “Slot” will hereinafter refer to an electrical connection between a board and a bus, regardless of whether the connection is removable or permanent.
A bus typically includes a plurality of signal lines. Digital signals carried over the signal lines are typically represented by one of two voltages that represent logical HIGH (“1”) and logical LOW (“0”) signals. To minimize the effect of electrical noise on the signal lines, especially when no signals are being sent over the lines, each signal line is typically connected through a resistor to a positive DC voltage source. This “pull-up” circuit maintains the signal line at a logical HIGH level until a circuit board asserts a logical LOW signal on the signal line.
A cPCI bus includes two kinds of slots, which are commonly referred to as “system” slots and “peripheral” slots. A system slot (sometimes also referred to as a “host” slot) enables an installed circuit board to control the bus, such as by providing bus arbitration, clock signals and reset signals. A circuit board installed in a system slot is permitted to communicate over signal lines of the cPCI bus and is required to provide pull-up voltage on certain of the signal lines. On the other hand, according to the CompactPCI Specification, circuit boards installed in peripheral slots are typically prohibited from providing such pull-up voltage.
To take advantage of economies of scale in manufacturing circuit boards, and to provide customers with flexibility in using these circuit boards, many suppliers manufacture circuit boards that can operate as either system boards or peripheral boards, depending on the slots in which they are installed. These circuit boards are hereinafter referred to as “dual-mode boards.” Each cPCI bus includes a signal line (designated “SYSEN#”) that is asserted as a logical LOW in a system slot and is asserted as a logical HIGH in peripheral slots. Thus, a dual-mode board can ascertain the kind of slot in which it is installed by sensing the SYSEN# signal line.
When a dual-mode board is installed in a peripheral slot, it typically enters a mode commonly known as “drone mode” or “isolation mode,” in which the board isolates itself from the cPCI bus and uses other interfaces, such as Ethernet or Fibrechannel, to communicate with other boards. Such a board typically employs a bus switch or other circuit containing field-effect transistors (FETs) on each signal line of the bus to selectively connect the board to the bus or isolate the board from the bus. These FETs can be turned ON to connect the circuit board to the bus, or they can be turned OFF to isolate the board from the bus.
CompactPCI boards are relatively small (100 mm×160 mm or 233.35 mm×160 mm), thus the area (“real estate”) on these boards is extremely limited, particularly in cPCI-based server boards. Unfortunately, the FETs required to selectively connect or isolate a board to or from a bus require a considerable amount of space on the board (“real estate”), thus limiting the amount of real estate available for other functional circuits. There is, therefore, a need for a bus interface control that can selectively connect or isolate a board to or from a bus, without requiring as much board real estate as in conventional systems.